/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package ControladoresUI;

import Entidades.Catedratico;
import Entidades.Curso;
import Entidades.Cursoposible;
import Entidades.Usuario;
import Ingresos.ICatedratico;
import Ingresos.ICursoPosible;
import ManagersUI.CursosPosiblesManager;
import Modelos.CursosPosiblesModel;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.scene.control.ComboBox;
import javafx.scene.control.TableColumn;
import javafx.scene.control.TableView;
import javafx.scene.control.cell.PropertyValueFactory;
import javax.swing.JOptionPane;

/**
 *
 * @author Carlos Andy T. Tiniguar <Tini0106Andy@gmail.com>
 */
public class CursosPosiblesController {
    Usuario usuario; 
    Catedratico registro;
    CursosPosiblesManager cursosPosiblesManager;
    @FXML private TableView<Curso> tblCursosPosibles;
    @FXML private TableColumn<Curso, String> nombreColumna;
    @FXML private TableColumn<Curso, Integer> creditosPracticosColumna;
    @FXML private TableColumn<Curso, Integer> creditosTeoricosColumna;
     @FXML private TableColumn<Curso, Integer> periodosColumna;
     
    @FXML ComboBox cmbCatedratico;
    
    
    public void initialize() {}
  
    public void initManager(final CursosPosiblesManager cursosPosiblesManager,Usuario usuario,Catedratico registro) {
        this.cursosPosiblesManager = cursosPosiblesManager;
        this.usuario = usuario;
        this.registro = registro;
        cargarCatedratico();
    }
    public void cargarCatedratico(){
        this.cmbCatedratico.setPromptText("Catedratico");
        ICatedratico manejo = new ICatedratico();
        this.cmbCatedratico.getItems().clear();
        this.cmbCatedratico.getItems().addAll(manejo.mostrarTodo());
        if(registro==null){ this.cmbCatedratico.setValue(this.cmbCatedratico.getItems().get(0));
        }
        else
        { this.cmbCatedratico.setValue(registro);            
        }
        this.registro = (Catedratico) cmbCatedratico.getValue();
        cargarTabla();
    }
    public void cargarTabla(){
      CursosPosiblesModel cursosposibleModel = new CursosPosiblesModel(null,registro.getNumeroCatedratico()); 
        tblCursosPosibles.setItems(cursosposibleModel.getPersonData());
        nombreColumna.setCellValueFactory(new PropertyValueFactory<Curso, String>("nombre"));
         creditosPracticosColumna.setCellValueFactory(new PropertyValueFactory<Curso, Integer>("creditospracticos"));
          creditosTeoricosColumna.setCellValueFactory(new PropertyValueFactory<Curso, Integer>("creditosteoricos"));
        periodosColumna.setCellValueFactory(new PropertyValueFactory<Curso, Integer>("periodosSemanales"));

     }
    @FXML
    private void BuscarCursoPosible(ActionEvent event){
        this.registro =(Catedratico) cmbCatedratico.getValue();
        cargarTabla();
    }
    @FXML
    private void agregarCursoPosible(ActionEvent event){
        this.cursosPosiblesManager.abrirFormularioSeleccionCursosPosibles(registro);
      // this.cargarTabla();
    }
    @FXML
    private void BorrarCursoPosible(ActionEvent event){
        Curso curso = tblCursosPosibles.getSelectionModel().getSelectedItem();
        if(curso == null){
            JOptionPane.showMessageDialog( null, "Debe seleccionar un dato","Mensaje", JOptionPane.INFORMATION_MESSAGE );
                        
        }
        else{
            int confirmado = JOptionPane.showConfirmDialog(   null,  "Desea realmente eliminarlo" );
            if (JOptionPane.OK_OPTION == confirmado){
               // curso.setAnulado(Boolean.TRUE);
                ICursoPosible nuevo = new ICursoPosible();
               Cursoposible datos = new Cursoposible();
               datos = nuevo.obtenerCatedraticoCurso(registro, curso);
               if(datos!=null){
                   nuevo.Eliminar(datos);
               }
            }
            
        }
        cargarTabla();
 //       cursosPosiblesManager.abrirPanelCursosPosiblesInicio(usuario);
      // periodosInicioManager.showPnlPeriodosRegistro(usuario);
    }
    
}
